package com.yupi.springbootinit.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 权限校验
 *一般用在Controller层，对用户身份进行验证，有的功能只能管理员操作，有的用户被封了不能进行操作
 */
@Target(ElementType.METHOD)//@Target 是一个元注解（meta-annotation），它用于指定其他注解可以应用于哪些Java元素上。ElementType.METHOD 是 ElementType 枚举的一个值，它表示注解可以应用于方法上
@Retention(RetentionPolicy.RUNTIME)//@Retention 是另一个元注解，用于指示注解的生命周期,当你使用 @Retention(RetentionPolicy.RUNTIME) 时，你正在指定这个注解不仅在编译时被保留，而且在运行时也可以通过反射机制来读取这个注解的信息
public @interface AuthCheck {

    /**
     * 必须有某个角色
     *
     * @return
     */
    String mustRole() default "";

}

